Getting EJScreen data

The Tampa Bay Estuary Program (TBEP) is developing a methodology as part of its new Equity Strategy to identify historically underserved (i.e., disadvantaged) communities across the Tampa Bay watershed to support the goals of the White House’s Justice40 Initiative (EO 14008) and the Environmental Protection Agency’s Equity Action Plan (EO 13985). The purpose of this initiative is to ensure TBEP delivers equitable and fair access to the benefits from environmental programs for all communities.

Below, we have provided instructions for downloading the data that will be used to identify underserved communities in Tampa Bay. To view instructions for cleaning the data and utilizing the socioeconomic indices to map underserved communities, see XXXXXX [MARCUS EDIT].

The method described below is presented in R coding language, but users who prefer working with GIS software (e.g., ArcGIS or QGIS) should also be able to reproduce the maps by following along in the descriptions of each step.

Load the required R packages (install first as needed, tbeptools installation instructions are here)

library(sf)
library(mapview)

To collect socioeconomic data that will be used for identifying underserved communities, we will be downloading U.S. census data provided by the EPA’s 2022 Environmental Justice Screening Tool (EJScreen). This data is available from https://gaftp.epa.gov/EJSCREEN/2022/?C=S;O=A. Here you will find different versions of EJScreen data that are summarized, calculated, and visualized in different ways to meet your particular needs (e.g., census blocks or tracts, state or national percentiles, tabular or spatial data).

In our case, we are interested in obtaining spatial data for the supplemental demographic indices, summarized at the census tract level, using national percentiles as our thresholds for identifying underserved communities. The appropriate file to download for our requirements is “EJSCREEN_2022_Supplemental_with_AS_CNMI_GU_VI_Tracts.gdb.zip”. However, you may want to explore the files available to see if a different file is more appropriate based on your needs.

Download the relevant file from EJScreen. The file is downloaded to a temporary directory.

# url with zip gdb to download
urlin <- 'https://gaftp.epa.gov/EJSCREEN/2022/EJSCREEN_2022_Supplemental_with_AS_CNMI_GU_VI_Tracts.gdb.zip'

# download file
tmp1 <- tempfile(fileext = "zip")
download.file(url = urlin, destfile = tmp1)

Unzip the geodatabase that was downloaded to a second temporary directory.

# unzip file
tmp2 <- tempfile()
utils::unzip(tmp1, exdir = tmp2, overwrite = TRUE)

Read the polygon layer from the geodatabase.

# get the layers from the gdb
gdbpth <- list.files(tmp2, pattern = '\\.gdb$', full.names = T)
lyrs <- st_layers(gdbpth)$name

# read the layer
dat <- st_read(dsn = gdbpth, lyrs)

To exclude census tracts outside of our watershed boundary, intersect the layer with the Tampa Bay watershed. If working in a different area, you will want to replace the tbshed shapefile with your own boundary file.

load(file = 'data/tbshed.RData')

# intersect the layer with the tb watershed
dattb <- dat %>% 
  st_transform(crs = st_crs(tbshed)) %>% 
  st_make_valid() %>% 
  st_intersection(tbshed)

View the data using mapview. You can see that we now have the desired spatial data just for our watershed.

mapview(dattb)

The layer can be saved as an RData object if needed. The size should be pretty small (~1mb).

# save the layer as an RData object (~1mb)
save(dattb, file = 'data/dattb.RData')

Unlink the temporary files so they’re deleted when you’re done.

# remove temp files
unlink(tmp1, recursive = TRUE)
unlink(tmp2, recursive = TRUE)